#include "serverwindow.h"
#include "ui_serverwindow.h"

serverwindow::serverwindow(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::serverwindow)
{
    ui->setupUi(this);
}

serverwindow::~serverwindow()
{
    delete ui;
}

//启动服务器
void serverwindow::on_pushButton_clicked()
{
    //第一步：创建对象  QTcpserver对象
//    m_server= new QTcpServer(this);

//    //第二步：监听 listen函数
//    unsigned short port = ui->lineEdit->text().toShort();
//    m_server->listen(QHostAddress::AnyIPv4 ,port);
//    //第三步：处理信号槽函数处理 （槽函数中获取客户端的socket）
//    //    QObject::connect(m_server,&QTcpServer::newConnection,
//    //                     this,&serverwindow::ClientConnect);
//    //   nextpendingconnction函数可以获取到客户端的socket，也就是QTCPsocket对象
//    //第四步：如果连接上了，设置按钮为灰色
//    ui->pushButton->setEnabled(false);

}

//发送数据
void serverwindow::on_pushButton_2_clicked()
{
    if (!m_serial.isOpen()) {
        ui->textEdit->append("串口未打开，无法发送数据\n");
        return;
    }

    QString temp = ui->textEdit_2->toPlainText();//获取textedit的文本
    m_serial.write(temp.toUtf8());
//    if(!temp.isEmpty() )
//    {
//        ui->textEdit->append(temp);
//    }
    ui->textEdit_2->clear();
}

//客户端连接后响应
void serverwindow::ClientConnect()
{
    //返回客户端的tcp
//    m_tcp = m_server->nextPendingConnection();
//    //打印下客户端的ip地址
//    QHostAddress addr =  m_tcp->peerAddress();
//    ui->textEdit->append(addr.toString());
//    connect(m_tcp,&QTcpSocket::readyRead,this,&serverwindow::readData );
//    connect(m_tcp,&QTcpSocket::disconnected ,this,&serverwindow::Clientdisconnect );


}


//服务器接受数据
void serverwindow::readData()
{
    QString temp = m_serial.readAll();
    if(!temp.isNull())
    {
        ui->textEdit->append(temp);
    }
}


//客户端断开连接
void serverwindow::Clientdisconnect()
{

    ui->textEdit->append("客户端断开连接\n");
    m_serial.close();

}
//打开串口
void serverwindow::on_pushButton_3_clicked()
{

    //    m_serial.setPortName(ui->comboBox->currentText());//设置串口名
    m_serial.setPortName("COM2");
    m_serial.open(QIODevice::ReadWrite);
    qDebug()<<m_serial.baudRate()<<endl;
    //    m_serial.setBaudRate(ui->comboBox_2->currentText().toInt());//设置波特率

    m_serial.setBaudRate(9600);//波特率
    m_serial.setDataBits(QSerialPort::Data8);//数据位
    m_serial.setFlowControl(QSerialPort::NoFlowControl);//数据流控制（暂时不管）

    m_serial.setParity(QSerialPort::NoParity);//奇偶校验位
    m_serial.setStopBits(QSerialPort::OneStop);//停止位

    if(m_serial.isOpen())
    {
        ui->label_7->setText("串口打开成功");
        connect(&m_serial,&QSerialPort::readyRead,this,&serverwindow::messlot);
    }
    else
    {
        ui->label_7->setText("串口打开失败");
    }
}

//关闭串口
void serverwindow::on_pushButton_4_clicked()
{
    m_serial.close();

    if(m_serial.isOpen())
    {
        ui->label_7->setText("串口关闭失败");
        connect(&m_serial,&QSerialPort::readyRead,this,&serverwindow::messlot);
    }
    else
    {
        ui->label_7->setText("串口已关闭");
    }

}


//串口接受信息的处理函数
void serverwindow::messlot()
{
    QByteArray array = m_serial.readAll();
    ui->textEdit->insertPlainText(array);
}


//刷新串口
void serverwindow::on_pushButton_5_clicked()
{


}
